新手想用PHP做网站,电脑上有VS code 请问还需要下载什么呢? 您所在的位置:网站首页 vs code php 新手想用PHP做网站,电脑上有VS code 请问还需要下载什么呢?

新手想用PHP做网站,电脑上有VS code 请问还需要下载什么呢?

#新手想用PHP做网站,电脑上有VS code 请问还需要下载什么呢?| 来源: 网络整理| 查看: 265

太长不看版(仅针对PHP开发环境):

优先用PHPStorm;如果没钱,用Eclipse 的PDT;如果想自己折腾,用VS Code。

1.接下来说VS Code

VS Code要支持一门语言,需要两个重要组件:LSP实现(Language Server Protocol,用于高亮和自动补全)和DAP(Debug Adapter Protocol,用于调试)。

非常巧合的是,PHP的LSP和DAP质量都不是很高。

1.1 首先说LSP

PHP的LSP实现主要有两个,代表的插件是 felixfbecker.php-intellisense 和 bmewburn.vscode-intelephense-client 。

felixfbecker.php-intellisense后面的LSP实现是PHP自己写的,问题在于分析太慢。前公司的一个大项目,PHPStrom 1分钟能Index结束;而这个插件是用PHP分析PHP代码,需要耗费30分钟。我还尝试过使用amphp(协程特性)来重构LSP实现,但是分析了下,发现提升不大。

bmewburn.vscode-intelephense-client 这个插件后的LSP实现是node(typescript)写的,即使用nodejs分析PHP代码。测试下来,分析性能提升了不少;但是第一是闭源的,第二经常出现莫名其妙的问题,我也没法看具体是哪儿的问题。

所以,综合来说,VS Code对PHP的支持仅仅是能用的程度,如果需要做PHP,那么需要改进的点还是很多的。

1.2 再说一说DAP

PHP的DAP实现,基本上只有 felixfbecker.php-debug (还有我fork并改进的 robberphex.php-debug )。

基本上来说,就是插件负责转换DAP到XDebug的调试协议。

首先,XDebug的调试协议有很严重的问题。比如对性能影响非常严重、无法主动暂停正在运行的代码(这一点我倒是给XDebug实现了,见 Fixed issue #1016: Support for pause-execution by RobberPhex · Pull Request #477 · xdebug/xdebug ,当时还和这个维护者视频讲解这个代码)

其次,DAP和LSP的交互,比如下断点之后,输入求值语句,需要自动补全,这一款基本就很难做。

综合来说,在DAP实现上,VS Code的体验比Eclipse PDT要差一点点。

2. 推荐的IDE

首先,PHPStorm在自动补全、调试体验上都是比较优秀的,基本上用PHP的公司,大部分还是用的PHPStorm。

其次,Eclipse PDT是比较早的PHP开发环境,由于历史积累,开发、调试体验还是相当不错的,甚至在一些细节上比PHPStorm做的还要好。(但是总体来说,还是PHPStrom比较强。)

最后,VS Code的架构是比较好的,但是严重依赖社区的建设,比如VSCode Node、Golang的相关组件就开发的比较好,使用体验优秀。VSCode Java借助Eclipse内核,做的算是及格。VS Code PHP社区整体投入比较少,导致现在体验不好。

3. VS Code PHP的前景

客观来说,VS Code PHP发展不好有很多原因:

PHP GC算法简单、内存管理不精细,导致PHP不适合长时间运行。但是LSP恰好是需要长时间运行的一个东西。PHP缺少线程支持,导致很多的CPU密集型任务无法很好的执行。比如LSP中的核心任务就是语法分析,只能使用一个线程来分析PHP代码,这严重降低了LSP的运行效率。PHP的解释执行,没有JIT,也部分降低了LSP的运行效率。PHP作为弱类型语言,在构建大型程序时,开发人员的心智负担较重,而且因为类型不匹配导致bug。最重要的是,PHP社区整体活跃度不够,很多基础的东西,比如LSP、DAP实现都没有人来维护改进,导致人员流失。


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有